<?php
namespace field\variable;

abstract class BaseField {
    public function __construct($name, $description, $extra){
        
    }

    /**
     * 转换输入数据
     */
    public function parse($data){
        return false;
    }

    /**
     * 解析form数据
     */
    public function parseForm($params){
        return $this->parse($params['value']);
    }

    /**
     * 转为string输出
     */
    public function toString(){

    }

    /**
     * 转为html输出
     */
    public function toHtml(){
        return $this->toString();
    }

    /**
     * 转为数据库格式
     */
    public function toDatabase(){

    }

    /**
     * 转为API格式
     */
    public function toApi(){
        return $this->toDatabase();
    }

    /**
     * 获取数据库的数据类型
     */
    public function getDatabaseType(){

    }

    /**
     * 获取在后台修改用户资料时的html
     */
    public function getAdminEditHtml(){
        return '<input type="text" data-id="value"></input>';
    }

    /**
     * 获取在后台配置时要加载的脚本
     */
    public function getAdminEditScripts(){
        return [
            'scripts' => [],
            'styles' => [], 
        ];
    }

    public static function getBaseName(){
        return '';
    }

    /**
     * 获取在后台配置时显示的附加数据html
     */
    public static function getExtraConfigHtml(){
        return '';
    }

    /**
     * 获取在后台配置时要加载的脚本
     */
    public static function getExtraConfigScripts(){
        return [
            'scripts' => [],
            'styles' => [], 
        ];
    }

    /**
     * 解析传入的附加参数
     */
    public static function parseExtraConfigParam($params){
        return [];
    }
}